home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 002 / testwrit.arc / TEST2WRT.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-06-10  |  10.3 KB  |  361 lines

  1. 5  CLS:KEY OFF:SCREEN 0,0,0:WIDTH 80:CLEAR:FOR I=1 TO 10:KEY I,"":NEXT:KEY 2,"GOTO 60"+CHR$(13):KEY 10,"RUN"+CHR$(34)+"BLUEMENU"+CHR$(34)+CHR$(13):LIST 10-57
  2. 10  '******************* EDUCATOR'S TOOLBOX SPECIAL ****************************
  3. 16  'KEYTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENCLOSE
  4. 18  'OPEN         TEACHER'S / EDUCATOR'S TESTWRITER & GRADE SHEET PROGRAM         OPEN
  5. 20  'OPEN                                                                         OPEN
  6. 22  'OPEN     This program was written and developed over a period of several     OPEN
  7. 24  'OPEN years by Bill Alton, 4201 W Carol Avenue. Phoenix, AZ  85021.  It is    OPEN
  8. 26  'OPEN a superbly crafted and implemented program with application far be-     OPEN
  9. 28  'OPEN ond test writing and grading. The program is expanded on the 360K disc. OPEN
  10. 30  'OPEN Big Blueberry Pie purchasers may examine the programming techniques in- OPEN
  11. 31  'OPEN volved.  Please call up the TESTWRIT.DOC program with a "type" command  OPEN
  12. 32  'OPEN in DOS.  Load the SAMPLE.TWD program when running this program for an   OPEN
  13. 33  'OPEN example of the TESTWRITERS capability. Bill Alton will welcome letters  OPEN
  14. 34  'OPEN with comments and applications of this program from educators or other  OPEN
  15. 35  'OPEN users. The program has been modified to work on Drive A. To use the     OPEN
  16. 36  'OPEN program for production, change Drive A references in Lines 1840, 2410,  OPEN
  17. 37  'OPEN and 3200 to Drive B. DO NOT OVERWRITE THE DRIVE A DISK. USE WRITE TAB!  OPEN
  18. 38  'OPEN NOTE:!  If you distribute this program, please leave Bill Alton's name  OPEN
  19. 39  'OPEN in the lead-in REMARKS as shown. This is the expanded version TEST2WRT. OPEN
  20. 40  'OPEN     An expanded version is on the 320K disk as TEST2WRT.BAS             OPEN
  21. 41  'OPEN                       (c) G I N A C O -- 1983       Ver 5.3/320         OPEN
  22. 50  'SCREENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENLOAD
  23. 55  '        *****  < F2 > to RUN  *******  < F10 > For BLUEMENU  *****
  24. 57  ' ====== To avoid DOCUMENTATION BOX each time, REM or DELETE  line 5 ======
  25. 60  CLS:SCREEN 0,0,0:WIDTH 80:CLEAR:FOR I=1 TO 10:KEY I,"":NEXT
  26. 100  COLOR 7,0
  27. 110  '***    T E S T W R I T E R    ***
  28. 120  '***      BILL ALTON        ***
  29. 130  '***    VERSION 1.0  05/15/83    ***
  30. 140  '*** FOR EPSON FX-80 PRINTER ***
  31. 150  CLEAR 1000
  32. 160  DIM Q$(100),Q1$(100),Q2$(100),A$(100,4),B$(100,4)
  33. 170  UU$ = "##."
  34. 180  CLS
  35. 190  GOSUB 3190
  36. 200  LOCATE 12,26
  37. 210  PRINT "*** TESTWRITER ***"
  38. 220  FOR X! = 1 TO 500
  39. 230  NEXT X!
  40. 240  PG! = 2
  41. 250  GOTO 2260
  42. 260  ' *** WRITE TEST ***
  43. 270  CLS
  44. 280  LOCATE 8,15
  45. 290  LINE INPUT "SUBJECT ";TT$
  46. 300  IF TT$ = "" THEN TT$ = "U. S. HISTORY" : CLS
  47. 310  CLS
  48. 320  LOCATE 10,1
  49. 330  PRINT "INPUT A REFERENCE CODE (EG. CHAPTER 12 SECTON 1 --> ";
  50. 340  COLOR 1
  51. 350  PRINT "C12S1";
  52. 360  COLOR 7
  53. 370  PRINT " ) ";
  54. 380  LINE INPUT ;S$
  55. 390  N! = 100
  56. 400  M! = 1
  57. 410  FOR A! = M! TO N!
  58. 420    CLS
  59. 430    LOCATE 8,15
  60. 440    PRINT "(TYPE 'END' IF LAST QUESTION)"
  61. 450    PRINT "***  TYPE OUT QUESTION # ";A!;"  ***"
  62. 460    PRINT STRING$(80,196)
  63. 470    LOCATE 11,10
  64. 480    COLOR 0,7
  65. 490    PRINT SPACE$(62)
  66. 500    COLOR 7,0
  67. 510    LOCATE 11,10
  68. 520    LINE INPUT Q$(A!)
  69. 530    IF Q$(A!) = "END" THEN N! = A! - 1 : GOTO 2260
  70. 540    LOCATE 12,10
  71. 550    COLOR 0,7
  72. 560    PRINT SPACE$(62)
  73. 570    COLOR 7,0
  74. 580    LOCATE 12,10
  75. 590    LINE INPUT Q1$(A!)
  76. 600    IF Q1$(A!) = "" THEN Q1$(A!) = "XX"
  77. 610    IF Q$(A!) = "X" THEN A! = (A! - 1) : Q$(A!) = "  " : CLS  : GOTO 420
  78. 620    IF Q1$(A!) = "XX" THEN Q2$(A!) = "XX" ELSE LOCATE 13,10 : COLOR 0,7 : PRINT SPACE$(62) : COLOR 7,0 : LOCATE 13,10 : LINE INPUT Q2$(A!)
  79. 630    IF Q2$(A!) = "" THEN Q2$(A!) = "XX"
  80. 640    IF Q1$(A!) = "X" THEN PRINT "RETYPING LAST QUESTION ";A! : Q1$(A!) = "  " : CLS  : GOTO 420
  81. 650    IF Q2$(A!) = "X" THEN Q2$(A!) = "  " : GOTO 420
  82. 660    FOR B! = 1 TO 4
  83. 670      CLS
  84. 680      PRINT "QUESTION #";A!
  85. 690      PRINT STRING$(80,223)
  86. 700      PRINT Q$(A!)
  87. 710      IF Q1$(A!) < > "XX" THEN PRINT Q1$(A!)
  88. 720      IF Q2$(A!) < > "XX" THEN PRINT Q2$(A!)
  89. 730      PRINT STRING$(80,177)
  90. 740      PRINT "ANSWER # ";B!;
  91. 750      IF B! = 1 THEN COLOR 17 : PRINT "   *** ENTER CORRECT ANSWER *** " : COLOR 7,0
  92. 760      PRINT
  93. 770      PRINT "TYPE 'X' TO REDO ANSWERS"
  94. 780      LOCATE 14,15
  95. 790      COLOR 0,7
  96. 800      PRINT SPACE$(12)
  97. 810      COLOR 7,0
  98. 820      LOCATE 14,15
  99. 830      LINE INPUT A$(A!,B!)
  100. 840      IF A$(A!,B!) = "X" THEN B! = 1 : CLS  : GOTO 670
  101. 850      IF B! = 1 THEN A$(A!,1) = "*" + A$(A!,1)
  102. 860      CLS
  103. 870  NEXT B!,A!
  104. 880  GOTO 2260
  105. 890  ' *** START OF PRINT ROUTINE ***
  106. 900  CLS
  107. 910  X$ = ""
  108. 920  INPUT "HIT ENTER TO PRINT -- 'R' TO RETURN TO MENU";X$
  109. 930  IF X$ = "R" OR X$ = "r" THEN 2260
  110. 940  PRINT
  111. 950  PRINT
  112. 960  PRINT
  113. 970  INPUT "DO YOU WANT TO RANDOMIZE THE ANSWERS ";X$
  114. 980  IF LEFT$(X$,1) = "Y" OR LEFT$(X$,1) = "y" THEN V! = 1 ELSE V! = 0
  115. 990  PRINT
  116. 1000  INPUT "INPUT 'CODE' SYMBOL TO SEPERATE TEST VERSIONS (EG. #,*,@)";KK$
  117. 1010  CLS
  118. 1020  :REM *** START PRINTING TO PRINTER ***
  119. 1030  PRINT "PRINTING"
  120. 1040  LPRINT DATE$ ; TAB( 57)"Name "; STRING$(16,95)
  121. 1050  LPRINT S$;KK$;
  122. 1060  LPRINT TAB( 57)"Date/Rm _________ (   )"
  123. 1070  LPRINT STRING$(79,61)
  124. 1080  Y! = 40 - ( LEN(TT$) / 2)
  125. 1090  LPRINT TAB( Y!)TT$
  126. 1100  LPRINT STRING$(79, CHR$(42))
  127. 1110  LPRINT SU$;"INSTRUCTIONS:";EU$;SI$;" Choose the best answer and fill in the letter of the answer in"
  128. 1120  LPRINT TAB( 15)"the blank to the left of the question.";EI$
  129. 1130  LPRINT " "
  130. 1140  LC! = 8
  131. 1150  FOR A! = 1 TO N!
  132. 1160    CLS
  133. 1170    IF Q$(A!) = "" THEN 1340
  134. 1180    PRINT "WORKING ON QUESTION ";A!; TAB( 65)"LINECOUNT = ";LC!
  135. 1190    LPRINT STRING$(5,95);
  136. 1200    LPRINT TAB( 7) USING UU$;A!;
  137. 1210    LPRINT TAB( 11)Q$(A!)
  138. 1220    LC! = LC! + 1
  139. 1230    IF Q1$(A!) < > "XX" THEN LPRINT TAB( 11)Q1$(A!) : LC! = LC! + 1
  140. 1240    IF Q2$(A!) < > "XX" THEN LPRINT TAB( 11)Q2$(A!) : LC! = LC! + 1
  141. 1250    IF V! = 1 THEN GOSUB 2490
  142. 1260    CLS
  143. 1270    IF LEFT$(A$(A!,1),1) = "*" THEN LPRINT TAB( 9);"A) "; RIGHT$(A$(A!,1), ( LEN(A$(A!,1)) - 1)); ELSE LPRINT TAB( 9)"A) ";A$(A!,1);
  144. 1280    IF LEFT$(A$(A!,2),1) = "*" THEN LPRINT TAB( 45);"B) "; RIGHT$(A$(A!,2), ( LEN(A$(A!,2)) - 1)) ELSE LPRINT TAB( 45)"B) ";A$(A!,2)
  145. 1290    IF LEFT$(A$(A!,3),1) = "*" THEN LPRINT TAB( 9);"C) "; RIGHT$(A$(A!,3), ( LEN(A$(A!,3)) - 1)); ELSE LPRINT TAB( 9)"C) ";A$(A!,3);
  146. 1300    IF LEFT$(A$(A!,4),1) = "*" THEN LPRINT TAB( 45);"D) "; RIGHT$(A$(A!,4), ( LEN(A$(A!,4)) - 1)) ELSE LPRINT TAB( 45)"D) ";A$(A!,4)
  147. 1310    LPRINT " "
  148. 1320    LC! = LC! + 4
  149. 1330    IF LC! > 62 THEN GOSUB 3060
  150. 1340  NEXT A!
  151. 1350  LPRINT CHR$(12)
  152. 1360  CLS
  153. 1370  PG! = 2
  154. 1380  PRINT "DO YOU WANT AN ANSWER KEY "
  155. 1390  X$ = INPUT$(1)
  156. 1400  IF LEFT$(X$,1) = "N" OR LEFT$(X$,1) = "n" THEN 2260
  157. 1410  CLS
  158. 1420  PRINT CHR$(23)
  159. 1430  PRINT "PRINTING ANSWER KEY"
  160. 1440  LPRINT DATE$ ; TAB( 45)SEC$"* T E A C H E R'S  C O P Y *";EEC$
  161. 1450  LPRINT S$;
  162. 1460  IF V! = 1 THEN LPRINT KK$;
  163. 1470  LPRINT TAB( 50)SEX$;"---> K E Y <---";EEX$
  164. 1480  LPRINT STRING$(79,"*")
  165. 1490  Y! = 40 - ( LEN(TT$) / 2)
  166. 1500  LPRINT TAB( Y!)TT$
  167. 1510  LPRINT STRING$(79,"*")
  168. 1520  LPRINT " "
  169. 1530  LPRINT " "
  170. 1540  LPRINT " "
  171. 1550  LC! = 10
  172. 1560  FOR A! = 1 TO N!
  173. 1570    IF Q$(A!) = "" THEN 2260
  174. 1580    PRINT "WORKING ON QUESTION ";A!
  175. 1590    IF LEFT$(A$(A!,1),1) = "*" THEN LPRINT TAB( 3);"A <--"; : GOTO 1640
  176. 1600    IF LEFT$(A$(A!,2),1) = "*" THEN LPRINT TAB( 3);"B <--"; : GOTO 1640
  177. 1610    IF LEFT$(A$(A!,3),1) = "*" THEN LPRINT TAB( 3);"C <--"; : GOTO 1640
  178. 1620    IF LEFT$(A$(A!,4),1) = "*" THEN LPRINT TAB( 3);"D <--"; : GOTO 1640
  179. 1630    LPRINT TAB( 3)"- <--";
  180. 1640    LPRINT A!;". ";
  181. 1650    LPRINT Q$(A!)
  182. 1660    LC! = LC! + 1
  183. 1670    IF Q1$(A!) < > "XX" THEN LPRINT TAB( 15)Q1$(A!) : LC! = LC! + 1
  184. 1680    IF Q2$(A!) < > "XX" THEN LPRINT TAB( 15)Q2$(A!) : LC! = LC! + 1
  185. 1690    LPRINT TAB( 9)"A) ";A$(A!,1); TAB( 45)"B) ";A$(A!,2)
  186. 1700    LPRINT TAB( 9)"C) ";A$(A!,3); TAB( 45)"D) ";A$(A!,4)
  187. 1710    LPRINT " "
  188. 1720    LC! = LC! + 4
  189. 1730    IF LC! > 60 THEN GOSUB 3060
  190. 1740  NEXT A!
  191. 1750  LPRINT " "
  192. 1760  LPRINT TAB( 40)"EACH QUESTION IS WORTH ";100 / N!;" POINTS"
  193. 1770  LPRINT CHR$(12)
  194. 1780  GOTO 2260
  195. 1790  ' *** INPUT SAVED TEST ***
  196. 1800  CLS
  197. 1810  ON ERROR GOTO 3360
  198. 1820  FILES "A:*.TWD"
  199. 1830  LINE INPUT "INPUT FILE NAME  (NO .TWD)";DF$
  200. 1840  IF DF$ = "" THEN 2260
  201. 1850  DF$ = DF$ + ".TWD"
  202. 1860  OPEN"I",1, DF$
  203. 1870  INPUT #1,N!
  204. 1880  LINE INPUT #1,TT$
  205. 1890  LINE INPUT #1,S$
  206. 1900  LOCATE 1,10
  207. 1910  PRINT TT$,S$
  208. 1920  FOR A! = 1 TO N!
  209. 1930    INPUT #1,Q$(A!),Q1$(A!),Q2$(A!),A$(A!,1),A$(A!,2),A$(A!,3),A$(A!,4)
  210. 1940    LOCATE 24,5
  211. 1950    PRINT Q$(A!)
  212. 1960  NEXT A!
  213. 1970  CLOSE
  214. 1980  INPUT "DO YOU WANT TO ADD ON TO THIS TEST ";X$
  215. 1990  IF LEFT$(X$,1) < > "Y" THEN 900
  216. 2000  M! = N!
  217. 2010  M! = M! + 1
  218. 2020  CLS
  219. 2030  PRINT "GET READY TO ADD TO TEST"
  220. 2040  FOR X! = 1 TO 300
  221. 2050  NEXT X!
  222. 2060  N! = 100
  223. 2070  GOTO 410
  224. 2080  ' *** SAVE PROGRAM ***
  225. 2090  CLS
  226. 2100  LINE INPUT "OUTPUT FILE NAME # ";DF$
  227. 2110  DF$ = DF$ + ".TWD"
  228. 2120  OPEN"O",1, DF$
  229. 2130  PRINT #1,N!
  230. 2140  PRINT #1,TT$
  231. 2150  PRINT #1,S$
  232. 2160  FOR A! = 1 TO N!
  233. 2170    PRINT #1, CHR$(34);Q$(A!); CHR$(34); CHR$(34);Q1$(A!); CHR$(34); CHR$(34);Q2$(A!); CHR$(34); CHR$(34);A$(A!,1); CHR$(34); CHR$(34);A$(A!,2); CHR$(34); CHR$(34);A$(A!,3); CHR$(34); CHR$(34);A$(A!,4) CHR$(34)
  234. 2180    PRINT TT$,Q$(A!)
  235. 2190  NEXT A!
  236. 2200  CLOSE
  237. 2210  CLS
  238. 2220  PRINT "THE TEST HAS BEEN SAVED"
  239. 2230  FOR X! = 1 TO 300
  240. 2240  NEXT X!
  241. 2250  :REM *** MENU ***
  242. 2260  CLS
  243. 2270  PRINT TAB( 60)N!" QUESTIONS READY"
  244. 2280  PRINT STRING$(80,205)
  245. 2290  PRINT
  246. 2300  PRINT TAB( 23);
  247. 2310  COLOR 0,7
  248. 2320  PRINT " M A K E  A  S E L E C T I O N "
  249. 2330  COLOR 7,0
  250. 2340  PRINT
  251. 2350  PRINT
  252. 2360  PRINT TAB( 25)"1  -  WRITE TEST"
  253. 2370  PRINT TAB( 25)"2  -  INPUT SAVED TEST"
  254. 2380  PRINT TAB( 25)"3  -  SAVE PROGRAM"
  255. 2390  PRINT TAB( 25)"4  -  PRINT TEST"
  256. 2400  PRINT TAB( 25)"5  -  RECALL TEST QUESTION"
  257. 2410  PRINT TAB( 25)"6  -  READ DIRECTORY ON DISK A"
  258. 2420  W$ = INKEY$
  259. 2430  IF W$ = "" GOTO 2420
  260. 2440  W! = VAL(W$)
  261. 2450  IF W! < 1 OR W! > 6 THEN 2420
  262. 2460  ON W! GOTO 270,1800,2090,900,2760,3160
  263. 2470  '*** RANDOMIZE ANSWERS ROUTINE ***
  264. 2480  X! = VAL( RIGHT$( TIME$ ,2)) + VAL( MID$( TIME$ ,4,2))
  265. 2490  RANDOMIZE X!
  266. 2500  X! = INT( RND * (5))
  267. 2510  IF X! = 0 THEN 2500
  268. 2520  N!(1) = X!
  269. 2530  X! = INT( RND * (5))
  270. 2540  IF X! = 0 THEN 2530
  271. 2550  N!(2) = X!
  272. 2560  IF N!(2) = N!(1) THEN 2530
  273. 2570  X! = INT( RND * (5))
  274. 2580  IF X! = 0 THEN 2570
  275. 2590  N!(3) = X!
  276. 2600  IF N!(3) = N!(2) OR N!(3) = N!(1) THEN 2570
  277. 2610  X! = INT( RND * (5))
  278. 2620  IF X! = 0 THEN 2610
  279. 2630  N!(4) = X!
  280. 2640  IF N!(4) = N!(3) OR N!(4) = N!(2) OR N!(4) = N!(1) THEN 2610
  281. 2650  PRINT N!(1),N!(2),N!(3),N!(4)
  282. 2660  B$(A!,N!(1)) = A$(A!,1)
  283. 2670  B$(A!,N!(2)) = A$(A!,2)
  284. 2680  B$(A!,N!(3)) = A$(A!,3)
  285. 2690  B$(A!,N!(4)) = A$(A!,4)
  286. 2700  A$(A!,1) = B$(A!,1)
  287. 2710  A$(A!,2) = B$(A!,2)
  288. 2720  A$(A!,3) = B$(A!,3)
  289. 2730  A$(A!,4) = B$(A!,4)
  290. 2740  RETURN
  291. 2750  ' *** RECALL TEST QUESTION ***
  292. 2760  PRINT "INPUT QUESTION # ..."
  293. 2770  INPUT ;V!
  294. 2780  LOCATE 5,30
  295. 2790  PRINT "QUESTION #";V!
  296. 2800  PRINT STRING$(80,177)
  297. 2810  CLS
  298. 2820  PRINT Q$(V!)
  299. 2830  PRINT Q1$(V!)
  300. 2840  PRINT Q2$(V!)
  301. 2850  PRINT STRING$(80,205)
  302. 2860  PRINT TAB( 15)A$(V!,1); TAB( 40)A$(V!,2)
  303. 2870  PRINT TAB( 15)A$(V!,3); TAB( 40)A$(V!,4)
  304. 2880  PRINT "NEW QUESTION # ";V!
  305. 2890  PRINT
  306. 2900  PRINT
  307. 2910  INPUT "--> ";QQ$(V!)
  308. 2920  IF QQ$(V!) = "" THEN 2280
  309. 2930  Q$(V!) = QQ$(V!)
  310. 2940  INPUT Q1$(V!)
  311. 2950  IF Q1$(V!) = "" THEN Q1$(V!) = "XX"
  312. 2960  IF Q1$(V!) = "XX" THEN Q2$(V!) = "XX" ELSE INPUT Q2$(V!)
  313. 2970  IF Q2$(V!) = "" THEN Q2$(V!) = "XX"
  314. 2980  FOR B! = 1 TO 4
  315. 2990    CLS
  316. 3000    PRINT "ANSWER #  ";B!
  317. 3010    PRINT STRING$(12,140)
  318. 3020    INPUT A$(V!,B!)
  319. 3030    IF A$(V!,B!) = "X" THEN B! = 1 : CLS  : GOTO 2980
  320. 3040  NEXT B!
  321. 3050  GOTO 2280
  322. 3060  LPRINT CHR$(12)
  323. 3070  LPRINT STRING$(79,"=")
  324. 3080  LPRINT TT$; TAB( 70)"PAGE ";PG!
  325. 3090  LPRINT STRING$(79,"*")
  326. 3100  LPRINT
  327. 3110  LPRINT
  328. 3120  PG! = PG! + 1
  329. 3130  LC! = 8
  330. 3140  RETURN
  331. 3150  ' *** READ DIR FOR DISK A ***
  332. 3160  FILES "A:*.*"
  333. 3170  GOTO 2270
  334. 3180  REM **** PRINTER SUBROUTINES ***
  335. 3190  SC$ = CHR$(15)
  336. 3200  EC$ = CHR$(18)
  337. 3210  SEC$ = CHR$(14) + CHR$(15)
  338. 3220  EEC$ = CHR$(18) + CHR$(20)
  339. 3230  SE$ = CHR$(14)
  340. 3240  EE$ = CHR$(20)
  341. 3250  SLG$ = CHR$(27) + CHR$(32)
  342. 3260  SI$ = CHR$(27) + CHR$(52)
  343. 3270  EI$ = CHR$(27) + CHR$(53)
  344. 3280  SU$ = CHR$(27) + CHR$(45) + CHR$(1)
  345. 3290  EU$ = CHR$(27) + CHR$(45) + CHR$(0)
  346. 3300  SEX$ = CHR$(27) + CHR$(87) + CHR$(1)
  347. 3310  EEX$ = CHR$(27) + CHR$(87) + CHR$(0)
  348. 3320  SD$ = CHR$(27) + CHR$(71)
  349. 3330  ED$ = CHR$(27) + CHR$(72)
  350. 3340  RETURN
  351. 3350  ' *** ERROR RECOVERY FROM NULL FILES ***
  352. 3360  LOCATE 12,30
  353. 3370  COLOR 26
  354. 3380  PRINT "NO TESTWRITER FILES ON DISK A"
  355. 3390  FOR X! = 1 TO 1400
  356. 3400  NEXT X!
  357. 3410  COLOR 7
  358. 3420  GOTO 2260
  359. 65000  '*********************** SAVE ROUTINE **********************************
  360. 65100  SAVE "B:TEST2WRT.BAS"
  361.